 
import axios from 'axios';


//拦截器作用：提取若干请求的公共逻辑

import { message } from 'antd'
axios.defaults.baseURL = "http://localhost:3000"



//提取公共接口文件逻辑
//interceptors：拦截器的意思
//请求拦截器
axios.interceptors.request.use((req)=>{
    // console.log("前端拦截",req);
    // 1.可以在这里添加请求头，统一添加token
    const token =localStorage.getItem('token');
    console.log("请求拦截器token",token);
    if(token){
        req.headers.token = token;
    }
     // 如果是post请求，则可对参数进行过滤，比如null/undefined
    if(req.method ==="post"){
       
    }
   return req;//返回的就是给到服务器的数据
},(err)=>Promise.reject(err))

//响应拦截器
//res就是拦截的数据
//return后面的就是给到前端的数据
axios.interceptors.response.use((res)=>{
    console.log("请求回来被拦截的数据",res);//和前端的额data一样
    //过滤数据
    console.log("请求回来被拦截的数据data",res.data);
    if(res.data.status===1){
        return res.data;
    }else{
          //统一处理错误
        message.error(res.data.msg);
        return Promise.reject(res);
    }
//    return res;
},(err)=>{
    console.dir("请求回来被拦截的数据发生错误",err);
    const response = err.response;
    if(response){
        const status = response.status;
        switch (status) {
            case 500: ;break
            case 401:
                message.error("输入的token过期，请重新登陆")   ;
                localStorage.removeItem('token');
                localStorage.removeItem('userInfo');
                window.location.hash = "#/login"
                break;
            case 404:;break;
            default:
                break;
        }
    }
    return Promise.reject(err);//把页面逻辑错误调入catch
})